觀前提醒:
The count-and-say sequence is the sequence of integers with the first five terms as following:
1.     1
2.     11
3.     21
4.     1211
5.     111221
1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is read off as "one 2, then one 1" or 1211.
Given an integer n where 1 ≤ n ≤ 30, generate the nth term of the count-and-say sequence. You can do so recursively, in other words from the previous member read off the digits, counting the number of digits in groups of the same digit.
Note: Each term of the sequence of integers will be represented as a string.
Example 1:
Input: 1
Output: "1"
Explanation: This is the base case.
Example 2:
Input: 4
Output: "1211"
Explanation: For n = 3 the term was "21" in which we have two groups "2" and "1", "2" can be read as "12" which means frequency = 1 and value = 2, the same way "1" is read as "11", so the answer is the concatenation of "12" and "11" which is "1211".
這題呢,小弟資質駑鈍,直接使用土方法暴力解決,詳情請直接參考下方 CODE + 註解 
/**
 * @param {number} n
 * @return {string}
 */
var countAndSay = function (n) {
  // 處理 edge case
  if (n === 1) {
    return "1";
  }
  let countSay = "1";
  for (let i = 1; i <= n - 1; i++) {
    // ASK: 為什麼是 1~n-1?
    // 因為第0趟時,countSay === "1";已經處理過了。
    let digit = countSay.charAt(0); //從左側開頭開始數
    let temp = countSay; // 先把整包 countSay 賦值給 temp。
    let count = 0;
    countSay = ""; // 清空儲存這輪數完的字串
    for (let j = 0; j <= temp.length - 1; j++) {
      // 數字相同,count++
      if (temp.charAt(j) === digit) {
        count++;
      } else {
        // 數字不同,將目前的 count 與digit加到字串,更新 digit,新的 count 從 "1" 開始數起
        countSay += count;
        countSay += digit;
        digit = temp.charAt(j);
        count = 1;
      }
    }
    // 當讀取到最後一位時,直接把計算好的結果加總到 countSay 後頭
    countSay += count;
    countSay += digit;
  }
  return countSay;
};
謝謝大家的收看,LeetCode 小學堂我們下次見~